iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
自我挑戰組

Tensorflow.js初學筆記系列 第 4

Day3 Tensorflow.js機器學習Part3

  • 分享至 

  • xImage
  •  

Representation: Feature Engineering
為了訓練模型,必須要選擇最能代表特徵。
必須考量特徵如何映射,才能使模型更好的預測,普遍來說整數與浮點數因為模型能直接相乘不需要特別處理,但字串由於不能乘於權重,所以應該進行映射,透過數字表達代表不同字串。

如何選擇良好特徵
1.	避免使用不常出現的特徵,在整個資料中只有少數幾筆
2.	具有清晰含意的特徵,例如人活多久,應該用年而非毫秒紀錄
3.	異常值必須分開,有些資料會將空值寫成-1但跟其他資料並沒有數值上的關係
4.	透過縮放,保持特徵尺度一致,假設特徵A的範圍是1到50,特徵B是5000到5000000,模型可能會變得很糟糕
5.	處理極端值、遺漏值、重複值、錯誤值、異常值

良好的機器學習仰賴良好的資料

Regularization for Simplicity
如果模型本身越複雜,那麼這個模型就越可能過擬合,我們可以透過模型損失看出,若訓練時的誤差越來越小,但測試的誤差越來越大,可以斷定此時應經有過擬合的情況出現。
我們可以透過降低模型複雜度來防止過擬合。
也就是把模型複雜度也作為評估模型時所考量的值
那要如何評量一個模型的複雜度呢?
這裡教的是L2 regularization,
方法就是將特徵權重的平方和也當作要考慮的部分。
也就是說特徵權重越接近0越好
想想特徵權重接近0代表什麼意思?
就是說這項特徵不考慮,忽略掉這項特徵的意思。
所以也就是說,如果將複雜度納入考量,訓練時模型會更容易忽視不重要的特徵,保留重要的特徵,這樣就能避免過擬合的問題了
實際上的目標變成 最小化(誤差+特徵權重的平方和)
另外可以透過特徵權重的平方和*lambda(正則化率) 來調整目標對誤差與複雜度之間的權衡
Lambda越大,模型會趨向簡單
Lambda越小,模型會趨向複雜
另外還有L1正規化,方法是特徵權重的絕對值和


上一篇
Day2 TensorFlow.js機器學習Part2
下一篇
Day4 Tensorflow.js機器學習Part4
系列文
Tensorflow.js初學筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言